package com.aiwiown.face.response;

import com.aiwiown.face.ApiResponse;
import com.aiwiown.face.domain.compare.IdExceptions;
import com.aiwiown.face.domain.compare.RiskAssessment;
import com.aiwiown.face.domain.verify.Liveness;
import com.aiwiown.face.internal.mapping.ApiField;

/**
 * <pre>
 * </pre>
 * RawVerifyResponse
 * Date: 2020/5/12 0012
 * Time: 14:37
 *
 * @author tang.xiaosheng@qq.com
 */
public class RawVerifyResponse extends ApiResponse {
    private static final long serialVersionUID = -361593531320870830L;

    /**
     * 此参数仅当调用时设置了biz_no参数才返回，但是如果设置了则即使API调用失败也返回，值与传入的biz_no保持完全一致。
     */
    @ApiField("biz_no")
    private String bizNo;

    /**
     * 本字段结构体表示流程验证结果、活体检测的结果。
     * 请注意：
     * <p>
     * 一般仅在procedure_validation、face_genuineness 都为“PASSED”时，才认为活体认定通过。
     * 如果procedure_validation不为PASSED，将不返回face_genuineness字段，也不会进行人脸比对。
     * 随产品迭代，本结构体中各字段可能出现新的取值，或者下线已存在的取值，请在集成开发时务必保留灵活性。
     */
    @ApiField("liveness")
    private Liveness liveness;

    /**
     * 本字段仅在参数comparison_type == 1返回，返回综合验证分数。此字段只在接口被成功调用时返回。
     */
    @ApiField("result_faceid")
    private RiskAssessment resultFaceid;

    /**
     * 本字段仅在设置了image_ref1、image_ref2或image_ref3时才返回、且只在接口被成功调用时返回。返回image_ref[x]与待验证人脸照的比对结果，分别为result_ref1、result_ref2、result_ref3。
     * <p>
     * 此对象包含的字段与result_faceid的一致，请参考对应的描述。
     */
    @ApiField("result_ref1")
    private RiskAssessment resultRef1;
    @ApiField("result_ref2")
    private RiskAssessment resultRef2;
    @ApiField("result_ref3")
    private RiskAssessment resultRef3;

    /**
     * 本对象仅在参数comparison_type == 1返回，返回身份相关的异常情况，
     * 如证件号码是否曾被冒用来攻击FaceID活体检测、参考数据的人像照片是否存在质量不佳等问题。
     * 可通过此字段增进对比对结果的解读。
     */
    @ApiField("id_exceptions")
    private IdExceptions idExceptions;

    public String getBizNo() {
        return bizNo;
    }

    public void setBizNo(String bizNo) {
        this.bizNo = bizNo;
    }

    public Liveness getLiveness() {
        return liveness;
    }

    public void setLiveness(Liveness liveness) {
        this.liveness = liveness;
    }

    public RiskAssessment getResultFaceid() {
        return resultFaceid;
    }

    public void setResultFaceid(RiskAssessment resultFaceid) {
        this.resultFaceid = resultFaceid;
    }

    public RiskAssessment getResultRef1() {
        return resultRef1;
    }

    public void setResultRef1(RiskAssessment resultRef1) {
        this.resultRef1 = resultRef1;
    }

    public RiskAssessment getResultRef2() {
        return resultRef2;
    }

    public void setResultRef2(RiskAssessment resultRef2) {
        this.resultRef2 = resultRef2;
    }

    public RiskAssessment getResultRef3() {
        return resultRef3;
    }

    public void setResultRef3(RiskAssessment resultRef3) {
        this.resultRef3 = resultRef3;
    }

    public IdExceptions getIdExceptions() {
        return idExceptions;
    }

    public void setIdExceptions(IdExceptions idExceptions) {
        this.idExceptions = idExceptions;
    }
}
